<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>实验2</title>
</head>
<body>
<script>
    //189000950 顾啟思
    //1.(1)
    console.log(Number(true),Number(null),+undefined);//转化为number类型
    //1.(2)
    console.log(Boolean('100'),Boolean(100),Boolean(null),!!undefined);//转化为布尔类型
    //1.(3)
    console.log(parseInt(123.6),parseInt(0b1011011),parseInt(0X2A),parseInt(0X2A,8));//0b是十进制 0X是16进制
    //1.(4)
    console.log(parseFloat('123.6'),parseFloat('100px'),parseFloat(010));//010是八进制的10 转换为十进制为8
    //1.(5)
    console.log(eval('87*99+2'));//eval()函数，这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。
    //1.(6)
    console.log(isNaN(null),isNaN('123'),isNaN('abc'),isNaN('a1b2c3'));//isNAN()判断是否为数值，是则返回true，反之返回false

    //2.(1)
    var arr1 = [];
    console.log(arr1, arr1.length);//arr1为空数组
    var arr2 = [1, 2, 3];
    console.log(arr2[0], arr2.length);//打印arr2下标为0的数
    var arr3 = new Array();
    console.log(arr3[1], arr3.length)//arr3为空数组
    //2.(2)
    var newarr2 = [1, 2, 3];
    //使用slice() 方法不会改变原数组，而是将截取到的元素封装到一个新数组中返回。
    console.log(newarr2.slice(1, 3));

    //3
    var riqi = new Date();
    console.log("当前时间为：");
    console.log(riqi.getHours()+":"+riqi.getMinutes());//得到小时和分钟数

    //4.(1)
    var reg1 = /^\d{4}$/;//验证4位的数字
    console.log(reg1.test('1234'),
        reg1.test('1a34'),
        reg1.test('12345')
    )
    //4.(2)
    var reg2 = new RegExp("^[sp]\\d{1,4}$","i");//验证1到4位的纯数字
    console.log(reg2.test('p123'),
        reg2.test('1234'),
        reg2.test('S10')
    )
    //4.(3)
    var reg3 = /(0|86|17951)?(13[3]|15[3]|17[3,7]|18[0,1,9]|14[9]|19[9])[0-9]{8}$/;//设置号码区间
    console.log(reg3.test('17323928570'),
        reg3.test('13312346789'),
        reg3.test('12345678910')
    )

    //5
    var str = "807712005@qq.com";
    console.log(str.match(/\d+/g));//match()匹配正则表达式

    //6
    //Math.ceil() 返回大于等于数字参数的最小整数(取整函数)，对数字进行上舍入
    //Math.random()函数返回0到1之间的伪随机数，包含0，但是不包含1，[0,1}
    console.log(Math.ceil(Math.random()*3));

    //7
    var x = 1;
    function A(y) {
        var x = 2;
        function B(z){
            console.log(x + y + z);
        }
        return B;
    }
    var C = A(2);
    C(3);//2+2+3

</script>
</body>
</html>